home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1995-01-28 | 6.6 KB | [ TEXT/MMCC]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
Confidence Program Detection Match Type Support
1%
dexvert
MacBinary (archive/macBinary)
fallback
Supported
1%
dexvert
Text File (text/txt)
fallback
Supported
100%
file
MacBinary II, inited, Sat Jan 28 16:25:55 1995, modified Sat Jan 28 16:25:55 1995, creator 'MMCC', type ASCII, 6085 bytes "Semaphores.h" , at 0x1845 410 bytes resource
default (weak)
99%
file
data
default
74%
TrID
Macintosh plain text (MacBinary)
default
25%
TrID
MacBinary 2
default (weak)
100%
dearkID
deark: macbinary
default
100%
siegfried
fmt/1762 MacBinary (II)
default
100%
lsar
MacBinary
default
id metadata key value macFileType [ TEXT] macFileCreator [ MMCC]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 0c 53 65 6d 61 70 68 | 6f 72 65 73 2e 68 00 00 |..Semaph|ores.h..| |00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 4d 4d 43 | 43 01 00 00 00 00 00 00 |.TEXTMMC|C.......| |00000050| 00 00 00 00 00 17 c5 00 | 00 01 9a ab 50 66 e3 ab |........|....Pf..| |00000060| 50 66 e3 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |Pf......|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 e4 53 00 00 |........|.....S..| |00000080| 23 69 66 6e 64 65 66 20 | 5f 5f 53 45 4d 41 50 48 |#ifndef |__SEMAPH| |00000090| 4f 52 45 53 5f 5f 0d 23 | 64 65 66 69 6e 65 20 5f |ORES__.#|define _| |000000a0| 5f 53 45 4d 41 50 48 4f | 52 45 53 5f 5f 0d 0d 23 |_SEMAPHO|RES__..#| |000000b0| 69 66 6e 64 65 66 20 5f | 5f 54 48 52 45 41 44 53 |ifndef _|_THREADS| |000000c0| 5f 5f 0d 23 69 6e 63 6c | 75 64 65 20 3c 54 68 72 |__.#incl|ude <Thr| |000000d0| 65 61 64 73 2e 68 3e 0d | 23 65 6e 64 69 66 0d 0d |eads.h>.|#endif..| |000000e0| 2f 2f 0d 2f 2f 20 43 6f | 6e 76 65 6e 69 65 6e 63 |//.// Co|nvenienc| |000000f0| 65 20 72 6f 75 74 69 6e | 65 73 0d 2f 2f 0d 42 6f |e routin|es.//.Bo| |00000100| 6f 6c 65 61 6e 20 54 69 | 6d 65 45 78 70 69 72 65 |olean Ti|meExpire| |00000110| 64 28 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |d(unsign|ed long | |00000120| 63 75 72 72 65 6e 74 54 | 69 6d 65 2c 20 75 6e 73 |currentT|ime, uns| |00000130| 69 67 6e 65 64 20 6c 6f | 6e 67 20 73 74 61 72 74 |igned lo|ng start| |00000140| 54 69 6d 65 2c 20 75 6e | 73 69 67 6e 65 64 20 6c |Time, un|signed l| |00000150| 6f 6e 67 20 73 74 6f 70 | 54 69 6d 65 29 3b 0d 75 |ong stop|Time);.u| |00000160| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 43 6c 6f |nsigned |long Clo| |00000170| 73 65 72 54 69 63 6b 28 | 75 6e 73 69 67 6e 65 64 |serTick(|unsigned| |00000180| 20 6c 6f 6e 67 20 63 75 | 72 72 65 6e 74 54 69 6d | long cu|rrentTim| |00000190| 65 2c 20 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |e, unsig|ned long| |000001a0| 20 74 69 63 6b 31 2c 20 | 75 6e 73 69 67 6e 65 64 | tick1, |unsigned| |000001b0| 20 6c 6f 6e 67 20 74 69 | 63 6b 32 29 3b 0d 0d 2f | long ti|ck2);../| |000001c0| 2f 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |/=======|========| |000001d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000001e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000001f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |00000200| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |00000210| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 2f 2f 20 43 4c 41 |========|=.// CLA| |00000220| 53 53 20 54 54 68 72 65 | 61 64 49 44 51 75 65 75 |SS TThre|adIDQueu| |00000230| 65 0d 2f 2f 0d 2f 2f 20 | 4b 65 65 70 20 74 72 61 |e.//.// |Keep tra| |00000240| 63 6b 20 6f 66 20 61 20 | 71 75 65 75 65 20 6f 66 |ck of a |queue of| |00000250| 20 54 68 72 65 61 64 49 | 44 73 0d 2f 2f 3d 3d 3d | ThreadI|Ds.//===| |00000260| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |00000270| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |00000280| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |00000290| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000002a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000002b0| 3d 3d 3d 3d 3d 0d 0d 63 | 6c 61 73 73 20 54 54 68 |=====..c|lass TTh| |000002c0| 72 65 61 64 49 44 51 75 | 65 75 65 0d 7b 0d 70 75 |readIDQu|eue.{.pu| |000002d0| 62 6c 69 63 3a 0d 09 09 | 09 09 09 54 54 68 72 65 |blic:...|...TThre| |000002e0| 61 64 49 44 51 75 65 75 | 65 28 29 20 3a 20 66 54 |adIDQueu|e() : fT| |000002f0| 68 72 65 61 64 43 6f 75 | 6e 74 28 30 29 2c 20 66 |hreadCou|nt(0), f| |00000300| 52 65 73 65 72 76 65 64 | 53 70 61 63 65 28 30 29 |Reserved|Space(0)| |00000310| 2c 20 66 54 68 72 65 61 | 64 51 75 65 75 65 28 6e |, fThrea|dQueue(n| |00000320| 69 6c 29 20 7b 7d 3b 0d | 09 09 09 09 09 7e 54 54 |il) {};.|.....~TT| |00000330| 68 72 65 61 64 49 44 51 | 75 65 75 65 28 29 3b 0d |hreadIDQ|ueue();.| |00000340| 09 0d 09 4f 53 45 72 72 | 09 09 09 45 6e 71 75 65 |...OSErr|...Enque| |00000350| 75 65 28 54 68 72 65 61 | 64 49 44 20 74 68 72 65 |ue(Threa|dID thre| |00000360| 61 64 54 6f 41 64 64 29 | 3b 0d 09 54 68 72 65 61 |adToAdd)|;..Threa| |00000370| 64 49 44 09 09 44 65 71 | 75 65 75 65 28 29 3b 0d |dID..Deq|ueue();.| |00000380| 09 6c 6f 6e 67 09 09 09 | 51 75 65 75 65 64 54 68 |.long...|QueuedTh| |00000390| 72 65 61 64 73 28 29 20 | 7b 20 72 65 74 75 72 6e |reads() |{ return| |000003a0| 20 66 54 68 72 65 61 64 | 43 6f 75 6e 74 3b 20 7d | fThread|Count; }| |000003b0| 0d 09 0d 70 72 69 76 61 | 74 65 3a 0d 09 4f 53 45 |...priva|te:..OSE| |000003c0| 72 72 09 09 09 49 6e 73 | 75 72 65 54 68 72 65 61 |rr...Ins|ureThrea| |000003d0| 64 51 75 65 75 65 48 61 | 73 46 72 65 65 53 70 61 |dQueueHa|sFreeSpa| |000003e0| 63 65 28 29 3b 0d 0d 09 | 6c 6f 6e 67 09 09 09 66 |ce();...|long...f| |000003f0| 54 68 72 65 61 64 43 6f | 75 6e 74 3b 0d 09 6c 6f |ThreadCo|unt;..lo| |00000400| 6e 67 09 09 09 66 52 65 | 73 65 72 76 65 64 53 70 |ng...fRe|servedSp| |00000410| 61 63 65 3b 0d 09 54 68 | 72 65 61 64 49 44 2a 2a |ace;..Th|readID**| |00000420| 09 09 66 54 68 72 65 61 | 64 51 75 65 75 65 3b 0d |..fThrea|dQueue;.| |00000430| 7d 3b 0d 0d 65 6e 75 6d | 0d 7b 0d 09 6b 41 6e 79 |};..enum|.{..kAny| |00000440| 53 65 6d 61 70 68 6f 72 | 65 49 44 20 3d 20 30 2c |Semaphor|eID = 0,| |00000450| 0d 09 6b 4e 65 76 65 72 | 54 69 6d 65 6f 75 74 53 |..kNever|TimeoutS| |00000460| 65 6d 61 70 68 6f 72 65 | 20 3d 20 30 78 37 46 46 |emaphore| = 0x7FF| |00000470| 46 46 46 46 46 0d 7d 3b | 0d 0d 2f 2f 3d 3d 3d 3d |FFFFF.};|..//====| |00000480| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |00000490| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000004a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000004b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000004c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000004d0| 3d 3d 3d 3d 0d 2f 2f 20 | 43 4c 41 53 53 20 54 53 |====.// |CLASS TS| |000004e0| 65 6d 61 70 68 6f 72 65 | 0d 2f 2f 0d 2f 2f 20 41 |emaphore|.//.// A| |000004f0| 20 73 65 6d 61 70 68 6f | 72 65 20 63 6f 6e 73 69 | semapho|re consi| |00000500| 73 74 73 20 6f 66 20 61 | 6e 20 6f 77 6e 65 72 20 |sts of a|n owner | |00000510| 74 68 72 65 61 64 20 61 | 6e 64 20 61 20 6c 69 73 |thread a|nd a lis| |00000520| 74 20 6f 66 20 62 6c 6f | 63 6b 65 64 20 74 68 72 |t of blo|cked thr| |00000530| 65 61 64 73 20 77 61 69 | 74 69 6e 67 20 74 6f 0d |eads wai|ting to.| |00000540| 2f 2f 20 62 65 63 6f 6d | 65 20 74 68 65 20 6f 77 |// becom|e the ow| |00000550| 6e 65 72 2e 20 20 57 68 | 65 6e 20 74 68 65 20 73 |ner. Wh|en the s| |00000560| 65 6d 61 70 68 6f 72 65 | 20 69 73 20 63 72 65 61 |emaphore| is crea| |00000570| 74 65 64 2c 20 69 74 73 | 20 72 65 73 6f 75 72 63 |ted, its| resourc| |00000580| 65 20 63 6f 75 6e 74 20 | 69 73 20 73 70 65 63 69 |e count |is speci| |00000590| 66 69 65 64 0d 2f 2f 20 | 74 6f 20 62 65 20 65 69 |fied.// |to be ei| |000005a0| 74 68 65 72 20 30 20 6f | 72 20 31 20 28 6c 61 72 |ther 0 o|r 1 (lar| |000005b0| 67 65 72 20 6e 75 6d 62 | 65 72 73 20 63 6f 75 6c |ger numb|ers coul| |000005c0| 64 20 62 65 20 73 75 70 | 70 6f 72 74 65 64 20 69 |d be sup|ported i| |000005d0| 66 20 61 20 6c 69 73 74 | 20 6f 66 20 6f 77 6e 69 |f a list| of owni| |000005e0| 6e 67 20 74 68 72 65 61 | 64 73 0d 2f 2f 20 77 61 |ng threa|ds.// wa| |000005f0| 73 20 6b 65 70 74 29 2e | 0d 2f 2f 0d 2f 2f 20 20 |s kept).|.//.// | |00000600| 41 20 74 68 72 65 61 64 | 20 72 65 71 75 65 73 74 |A thread| request| |00000610| 73 20 74 6f 20 62 65 63 | 6f 6d 65 20 74 68 65 20 |s to bec|ome the | |00000620| 6f 77 6e 65 72 20 62 79 | 20 63 61 6c 6c 69 6e 67 |owner by| calling| |00000630| 20 47 72 61 62 2c 20 61 | 6e 64 20 72 65 6c 69 6e | Grab, a|nd relin| |00000640| 71 75 69 73 68 65 73 0d | 2f 2f 20 6f 77 6e 65 72 |quishes.|// owner| |00000650| 73 68 69 70 20 62 79 20 | 63 61 6c 6c 69 6e 67 20 |ship by |calling | |00000660| 52 65 6c 65 61 73 65 2e | 20 20 4e 6f 6e 2d 74 68 |Release.| Non-th| |00000670| 72 65 61 64 73 20 63 61 | 6e 20 67 65 74 20 6f 77 |reads ca|n get ow| |00000680| 6e 65 72 73 68 69 70 20 | 6f 66 20 74 68 65 20 73 |nership |of the s| |00000690| 65 6d 61 70 68 6f 72 65 | 20 62 79 20 0d 2f 2f 20 |emaphore| by .// | |000006a0| 63 61 6c 6c 69 6e 67 20 | 53 65 74 41 76 61 69 6c |calling |SetAvail| |000006b0| 61 62 6c 65 28 66 61 6c | 73 65 29 3b 20 69 6e 20 |able(fal|se); in | |000006c0| 74 68 69 73 20 63 61 73 | 65 20 65 76 65 6e 20 74 |this cas|e even t| |000006d0| 68 6f 75 67 68 20 66 4f | 77 6e 69 6e 67 54 68 72 |hough fO|wningThr| |000006e0| 65 61 64 20 77 69 6c 6c | 20 62 65 20 6e 69 6c 2c |ead will| be nil,| |000006f0| 20 74 68 65 20 0d 2f 2f | 20 73 65 6d 61 70 68 6f | the .//| semapho| |00000700| 72 65 20 77 69 6c 6c 20 | 73 74 69 6c 6c 20 77 6f |re will |still wo| |00000710| 72 6b 20 63 6f 72 72 65 | 63 74 6c 79 20 62 65 63 |rk corre|ctly bec| |00000720| 61 75 73 65 20 66 41 76 | 61 69 6c 61 62 6c 65 20 |ause fAv|ailable | |00000730| 69 73 20 66 61 6c 73 65 | 20 61 6e 64 20 74 68 75 |is false| and thu| |00000740| 73 20 6f 74 68 65 72 20 | 74 68 72 65 61 64 73 0d |s other |threads.| |00000750| 2f 2f 20 74 68 61 74 20 | 67 72 61 62 20 74 68 65 |// that |grab the| |00000760| 20 73 65 6d 61 70 68 6f | 72 65 20 77 69 6c 6c 20 | semapho|re will | |00000770| 62 6c 6f 63 6b 20 61 73 | 20 74 68 65 79 20 73 68 |block as| they sh| |00000780| 6f 75 6c 64 2e 0d 2f 2f | 0d 2f 2f 20 53 65 6d 61 |ould..//|.// Sema| |00000790| 70 68 6f 72 65 73 20 61 | 72 65 20 6c 69 6e 6b 65 |phores a|re linke| |000007a0| 64 20 69 6e 74 6f 20 61 | 20 67 6c 6f 62 61 6c 20 |d into a| global | |000007b0| 6c 69 73 74 20 6f 66 20 | 61 6c 6c 20 73 65 6d 61 |list of |all sema| |000007c0| 70 68 6f 72 65 73 20 75 | 70 6f 6e 20 63 72 65 61 |phores u|pon crea| |000007d0| 74 69 6f 6e 20 61 6e 64 | 20 72 65 6d 6f 76 65 64 |tion and| removed| |000007e0| 0d 2f 2f 20 75 70 6f 6e | 20 64 65 6c 65 74 69 6f |.// upon| deletio| |000007f0| 6e 2e 20 20 45 61 63 68 | 20 73 65 6d 61 70 68 6f |n. Each| semapho| |00000800| 72 65 20 68 61 73 20 61 | 20 75 6e 69 71 75 65 20 |re has a| unique | |00000810| 49 44 20 28 67 65 6e 65 | 72 61 74 65 64 20 62 79 |ID (gene|rated by| |00000820| 20 61 20 73 74 61 74 69 | 63 20 6d 65 74 68 6f 64 | a stati|c method| |00000830| 29 2c 20 61 6e 64 0d 2f | 2f 20 74 68 65 20 67 6c |), and./|/ the gl| |00000840| 6f 62 61 6c 20 6c 69 73 | 74 20 63 61 6e 20 62 65 |obal lis|t can be| |00000850| 20 73 65 61 72 63 68 65 | 64 20 66 6f 72 20 61 20 | searche|d for a | |00000860| 67 69 76 65 6e 20 49 44 | 20 28 76 69 61 20 61 6e |given ID| (via an| |00000870| 6f 74 68 65 72 20 73 74 | 61 74 69 63 20 6d 65 74 |other st|atic met| |00000880| 68 6f 64 29 2e 0d 2f 2f | 3d 3d 3d 3d 3d 3d 3d 3d |hod)..//|========| |00000890| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000008a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000008b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000008c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000008d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========| |000008e0| 0d 0d 63 6c 61 73 73 20 | 54 53 65 6d 61 70 68 6f |..class |TSemapho| |000008f0| 72 65 0d 7b 0d 09 0d 2f | 2f 20 2d 2d 2d 20 4d 65 |re.{.../|/ --- Me| |00000900| 74 68 6f 64 73 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |thods --|--------| |00000910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000950| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 0d 70 75 62 |--------|---..pub| |00000960| 6c 69 63 3a 0d 09 09 09 | 09 09 09 09 54 53 65 6d |lic:....|....TSem| |00000970| 61 70 68 6f 72 65 28 6c | 6f 6e 67 20 72 65 73 6f |aphore(l|ong reso| |00000980| 75 72 63 65 43 6f 75 6e | 74 20 3d 20 31 2c 20 6c |urceCoun|t = 1, l| |00000990| 6f 6e 67 20 73 65 6d 61 | 70 68 6f 72 65 49 44 20 |ong sema|phoreID | |000009a0| 3d 20 6b 41 6e 79 53 65 | 6d 61 70 68 6f 72 65 49 |= kAnySe|maphoreI| |000009b0| 44 29 3b 0d 70 72 6f 74 | 65 63 74 65 64 3a 0d 09 |D);.prot|ected:..| |000009c0| 76 69 72 74 75 61 6c 09 | 09 09 09 09 7e 54 53 65 |virtual.|....~TSe| |000009d0| 6d 61 70 68 6f 72 65 28 | 29 3b 0d 0d 70 75 62 6c |maphore(|);..publ| |000009e0| 69 63 3a 0d 09 73 74 61 | 74 69 63 09 76 6f 69 64 |ic:..sta|tic.void| |000009f0| 09 09 09 49 6e 69 74 69 | 61 6c 69 7a 65 47 6c 6f |...Initi|alizeGlo| |00000a00| 62 61 6c 73 28 29 3b 0d | 09 73 74 61 74 69 63 09 |bals();.|.static.| |00000a10| 6c 6f 6e 67 09 09 09 4e | 65 77 55 6e 69 71 75 65 |long...N|ewUnique| |00000a20| 53 65 6d 61 70 68 6f 72 | 65 49 44 28 29 3b 0d 09 |Semaphor|eID();..| |00000a30| 73 74 61 74 69 63 09 54 | 53 65 6d 61 70 68 6f 72 |static.T|Semaphor| |00000a40| 65 2a 09 09 46 69 6e 64 | 53 65 6d 61 70 68 6f 72 |e*..Find|Semaphor| |00000a50| 65 28 6c 6f 6e 67 20 73 | 65 6d 61 70 68 6f 72 65 |e(long s|emaphore| |00000a60| 49 44 2c 20 42 6f 6f 6c | 65 61 6e 20 63 72 65 61 |ID, Bool|ean crea| |00000a70| 74 65 49 66 4e 6f 74 46 | 6f 75 6e 64 20 3d 20 66 |teIfNotF|ound = f| |00000a80| 61 6c 73 65 2c 20 6c 6f | 6e 67 20 72 65 73 6f 75 |alse, lo|ng resou| |00000a90| 72 63 65 43 6f 75 6e 74 | 20 3d 20 31 29 3b 0d 09 |rceCount| = 1);..| |00000aa0| 73 74 61 74 69 63 09 76 | 6f 69 64 09 09 09 49 64 |static.v|oid...Id| |00000ab0| 6c 65 28 29 3b 0d 09 73 | 74 61 74 69 63 09 76 6f |le();..s|tatic.vo| |00000ac0| 69 64 09 09 09 54 68 72 | 65 61 64 44 69 65 64 28 |id...Thr|eadDied(| |00000ad0| 54 68 72 65 61 64 49 44 | 20 74 68 72 65 61 64 49 |ThreadID| threadI| |00000ae0| 44 29 3b 0d 09 73 74 61 | 74 69 63 09 76 6f 69 64 |D);..sta|tic.void| |00000af0| 09 09 09 53 65 74 44 65 | 66 61 75 6c 74 54 69 6d |...SetDe|faultTim| |00000b00| 65 6f 75 74 28 6c 6f 6e | 67 20 6e 65 77 44 65 66 |eout(lon|g newDef| |00000b10| 61 75 6c 74 29 3b 0d 09 | 73 74 61 74 69 63 09 76 |ault);..|static.v| |00000b20| 6f 69 64 09 09 09 53 65 | 74 44 65 66 61 75 6c 74 |oid...Se|tDefault| |00000b30| 4d 61 78 57 61 69 74 28 | 6c 6f 6e 67 20 6e 65 77 |MaxWait(|long new| |00000b40| 4d 61 78 57 61 69 74 29 | 3b 0d 09 0d 09 09 09 76 |MaxWait)|;......v| |00000b50| 6f 69 64 09 09 09 52 65 | 6c 65 61 73 65 52 65 66 |oid...Re|leaseRef| |00000b60| 65 72 65 6e 63 65 28 29 | 3b 0d 09 09 09 76 6f 69 |erence()|;....voi| |00000b70| 64 09 09 09 44 69 73 70 | 6f 73 65 28 29 3b 0d 09 |d...Disp|ose();..| |00000b80| 09 09 6c 6f 6e 67 09 09 | 09 53 65 6d 61 70 68 6f |..long..|.Semapho| |00000b90| 72 65 49 44 28 29 20 63 | 6f 6e 73 74 3b 0d 0d 09 |reID() c|onst;...| |00000ba0| 09 09 4f 53 45 72 72 09 | 09 09 47 72 61 62 28 54 |..OSErr.|..Grab(T| |00000bb0| 68 72 65 61 64 49 44 20 | 74 68 72 65 61 64 49 44 |hreadID |threadID| |00000bc0| 20 3d 20 6b 43 75 72 72 | 65 6e 74 54 68 72 65 61 | = kCurr|entThrea| |00000bd0| 64 49 44 29 3b 0d 09 09 | 09 76 6f 69 64 09 09 09 |dID);...|.void...| |00000be0| 52 65 6c 65 61 73 65 28 | 54 68 72 65 61 64 49 44 |Release(|ThreadID| |00000bf0| 20 74 68 72 65 61 64 49 | 44 20 3d 20 6b 43 75 72 | threadI|D = kCur| |00000c00| 72 65 6e 74 54 68 72 65 | 61 64 49 44 29 3b 0d 09 |rentThre|adID);..| |00000c10| 09 09 54 68 72 65 61 64 | 49 44 09 09 52 65 6c 65 |..Thread|ID..Rele| |00000c20| 61 73 65 4f 6e 65 54 68 | 72 65 61 64 28 29 3b 0d |aseOneTh|read();.| |00000c30| 09 09 09 76 6f 69 64 09 | 09 09 52 65 6c 65 61 73 |...void.|..Releas| |00000c40| 65 41 6c 6c 54 68 72 65 | 61 64 73 28 29 3b 0d 09 |eAllThre|ads();..| |00000c50| 09 09 42 6f 6f 6c 65 61 | 6e 09 09 09 41 76 61 69 |..Boolea|n...Avai| |00000c60| 6c 61 62 6c 65 28 29 20 | 63 6f 6e 73 74 3b 0d 09 |lable() |const;..| |00000c70| 09 09 76 6f 69 64 09 09 | 09 53 65 74 41 76 61 69 |..void..|.SetAvai| |00000c80| 6c 61 62 6c 65 28 42 6f | 6f 6c 65 61 6e 29 3b 0d |lable(Bo|olean);.| |00000c90| 09 09 09 0d 09 09 09 76 | 6f 69 64 09 09 09 52 65 |.......v|oid...Re| |00000ca0| 73 65 74 54 69 6d 65 6f | 75 74 54 69 6d 65 72 28 |setTimeo|utTimer(| |00000cb0| 29 3b 0d 09 09 09 76 6f | 69 64 09 09 09 41 64 64 |);....vo|id...Add| |00000cc0| 47 72 61 63 65 50 65 72 | 69 6f 64 28 6c 6f 6e 67 |GracePer|iod(long| |00000cd0| 20 67 72 61 63 65 50 65 | 72 69 6f 64 29 3b 0d 09 | gracePe|riod);..| |00000ce0| 09 09 76 6f 69 64 09 09 | 09 53 65 74 53 65 6d 61 |..void..|.SetSema| |00000cf0| 70 68 6f 72 65 54 69 6d | 6f 75 74 56 61 6c 75 65 |phoreTim|outValue| |00000d00| 28 6c 6f 6e 67 20 74 69 | 6d 65 6f 75 74 56 61 6c |(long ti|meoutVal| |00000d10| 75 65 29 3b 0d 09 09 09 | 76 6f 69 64 09 09 09 53 |ue);....|void...S| |00000d20| 65 74 53 65 6d 61 70 68 | 6f 72 65 4d 61 78 57 61 |etSemaph|oreMaxWa| |00000d30| 69 74 54 69 6d 65 28 6c | 6f 6e 67 20 74 69 6d 65 |itTime(l|ong time| |00000d40| 6f 75 74 56 61 6c 75 65 | 29 3b 0d 09 09 09 6c 6f |outValue|);....lo| |00000d50| 6e 67 09 09 09 53 65 6d | 61 70 68 6f 72 65 54 69 |ng...Sem|aphoreTi| |00000d60| 6d 6f 75 74 56 61 6c 75 | 65 28 29 20 7b 20 72 65 |moutValu|e() { re| |00000d70| 74 75 72 6e 20 66 53 65 | 6d 61 70 68 6f 72 65 54 |turn fSe|maphoreT| |00000d80| 69 6d 65 6f 75 74 56 61 | 6c 75 65 3b 20 7d 0d 09 |imeoutVa|lue; }..| |00000d90| 09 09 6c 6f 6e 67 09 09 | 09 53 65 6d 61 70 68 6f |..long..|.Semapho| |00000da0| 72 65 4d 61 78 57 61 69 | 74 54 69 6d 65 28 29 20 |reMaxWai|tTime() | |00000db0| 7b 20 72 65 74 75 72 6e | 20 66 53 65 6d 61 70 68 |{ return| fSemaph| |00000dc0| 6f 72 65 4d 61 78 57 61 | 69 74 54 69 6d 65 3b 20 |oreMaxWa|itTime; | |00000dd0| 7d 0d 09 09 09 0d 09 09 | 09 75 6e 73 69 67 6e 65 |}.......|.unsigne| |00000de0| 64 20 6c 6f 6e 67 09 54 | 69 6d 65 6f 75 74 54 69 |d long.T|imeoutTi| |00000df0| 63 6b 28 29 3b 0d 09 09 | 09 42 6f 6f 6c 65 61 6e |ck();...|.Boolean| |00000e00| 09 09 09 43 68 65 63 6b | 49 66 54 69 6d 65 72 45 |...Check|IfTimerE| |00000e10| 78 70 69 72 65 64 28 75 | 6e 73 69 67 6e 65 64 20 |xpired(u|nsigned | |00000e20| 6c 6f 6e 67 20 63 75 72 | 72 65 6e 74 54 69 6d 65 |long cur|rentTime| |00000e30| 29 3b 0d 09 09 09 76 6f | 69 64 09 09 09 53 65 6d |);....vo|id...Sem| |00000e40| 61 70 68 6f 72 65 54 69 | 6d 65 64 4f 75 74 28 29 |aphoreTi|medOut()| |00000e50| 3b 0d 09 09 09 0d 70 72 | 6f 74 65 63 74 65 64 3a |;.....pr|otected:| |00000e60| 0d 09 09 09 76 6f 69 64 | 09 09 09 52 65 6d 6f 76 |....void|...Remov| |00000e70| 65 46 72 6f 6d 47 6c 6f | 62 61 6c 53 65 6d 61 70 |eFromGlo|balSemap| |00000e80| 68 6f 72 65 4c 69 73 74 | 28 29 3b 0d 09 09 09 0d |horeList|();.....| |00000e90| 2f 2f 20 2d 2d 2d 20 46 | 69 65 6c 64 73 20 2d 2d |// --- F|ields --| |00000ea0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000ef0| 2d 2d 2d 0d 0d 70 72 69 | 76 61 74 65 3a 0d 09 73 |---..pri|vate:..s| |00000f00| 74 61 74 69 63 09 54 53 | 65 6d 61 70 68 6f 72 65 |tatic.TS|emaphore| |00000f10| 2a 09 09 67 46 69 72 73 | 74 53 65 6d 61 70 68 6f |*..gFirs|tSemapho| |00000f20| 72 65 3b 09 09 09 2f 2f | 20 50 6f 69 6e 74 65 72 |re;...//| Pointer| |00000f30| 20 74 6f 20 74 68 65 20 | 66 69 72 73 74 20 73 65 | to the |first se| |00000f40| 6d 61 70 68 6f 72 65 20 | 69 6e 20 74 68 65 20 67 |maphore |in the g| |00000f50| 6c 6f 62 61 6c 20 6c 69 | 73 74 20 6f 66 20 61 6c |lobal li|st of al| |00000f60| 6c 20 73 65 6d 61 70 68 | 6f 72 65 73 0d 09 73 74 |l semaph|ores..st| |00000f70| 61 74 69 63 09 6c 6f 6e | 67 09 09 09 67 53 65 6d |atic.lon|g...gSem| |00000f80| 61 70 68 6f 72 65 49 44 | 53 65 71 75 65 6e 63 65 |aphoreID|Sequence| |00000f90| 3b 09 09 2f 2f 20 54 68 | 65 20 6e 65 78 74 20 61 |;..// Th|e next a| |00000fa0| 76 61 69 6c 61 62 6c 65 | 20 73 65 6d 61 70 68 6f |vailable| semapho| |00000fb0| 72 65 20 49 44 20 28 75 | 73 65 64 20 66 6f 72 20 |re ID (u|sed for | |00000fc0| 61 73 73 69 67 6e 69 6e | 67 20 75 6e 69 71 75 65 |assignin|g unique| |00000fd0| 20 49 44 73 29 0d 09 73 | 74 61 74 69 63 09 6c 6f | IDs)..s|tatic.lo| |00000fe0| 6e 67 09 09 09 67 53 65 | 6d 61 70 68 6f 72 65 44 |ng...gSe|maphoreD| |00000ff0| 65 66 61 75 6c 74 54 69 | 6d 65 6f 75 74 3b 09 2f |efaultTi|meout;./| |00001000| 2f 20 44 65 66 61 75 6c | 74 20 74 69 6d 65 20 74 |/ Defaul|t time t| |00001010| 6f 20 77 61 69 74 20 62 | 65 66 6f 72 65 20 74 69 |o wait b|efore ti| |00001020| 6d 69 6e 67 20 6f 75 74 | 0d 09 73 74 61 74 69 63 |ming out|..static| |00001030| 09 6c 6f 6e 67 09 09 09 | 67 53 65 6d 61 70 68 6f |.long...|gSemapho| |00001040| 72 65 44 65 66 61 75 6c | 74 4d 61 78 57 61 69 74 |reDefaul|tMaxWait| |00001050| 3b 09 2f 2f 20 44 65 66 | 61 75 6c 74 20 6d 61 78 |;.// Def|ault max| |00001060| 69 6d 75 6d 20 74 69 6d | 65 20 74 6f 20 77 61 69 |imum tim|e to wai| |00001070| 74 20 28 65 78 63 6c 75 | 73 69 76 65 20 6f 66 20 |t (exclu|sive of | |00001080| 74 69 6d 65 72 20 72 65 | 73 65 74 73 29 0d 09 73 |timer re|sets)..s| |00001090| 74 61 74 69 63 09 75 6e | 73 69 67 6e 65 64 20 6c |tatic.un|signed l| |000010a0| 6f 6e 67 09 67 4c 61 73 | 74 54 69 6d 65 6f 75 74 |ong.gLas|tTimeout| |000010b0| 54 65 73 74 3b 09 09 09 | 2f 2f 20 54 68 65 20 6c |Test;...|// The l| |000010c0| 61 73 74 20 74 69 63 6b | 20 74 68 61 74 20 77 65 |ast tick| that we| |000010d0| 20 6c 6f 6f 6b 65 64 20 | 66 6f 72 20 74 69 6d 65 | looked |for time| |000010e0| 64 2d 6f 75 74 20 73 65 | 6d 61 70 68 6f 72 65 73 |d-out se|maphores| |000010f0| 0d 09 73 74 61 74 69 63 | 09 75 6e 73 69 67 6e 65 |..static|.unsigne| |00001100| 64 20 6c 6f 6e 67 09 67 | 4c 61 73 74 49 64 6c 65 |d long.g|LastIdle| |00001110| 54 69 63 6b 3b 09 09 09 | 09 2f 2f 20 54 68 65 20 |Tick;...|.// The | |00001120| 6c 61 73 74 20 74 69 63 | 6b 20 77 65 20 67 6f 74 |last tic|k we got| |00001130| 20 73 6f 6d 65 20 69 64 | 6c 65 20 74 69 6d 65 0d | some id|le time.| |00001140| 09 73 74 61 74 69 63 09 | 75 6e 73 69 67 6e 65 64 |.static.|unsigned| |00001150| 20 6c 6f 6e 67 09 67 4e | 65 78 74 54 69 6d 65 6f | long.gN|extTimeo| |00001160| 75 74 54 65 73 74 3b 09 | 09 09 2f 2f 20 4e 65 78 |utTest;.|..// Nex| |00001170| 74 20 74 69 63 6b 20 74 | 6f 20 6c 6f 6f 6b 20 66 |t tick t|o look f| |00001180| 6f 72 20 73 65 6d 61 70 | 68 6f 72 65 73 20 74 68 |or semap|hores th| |00001190| 61 74 20 68 61 76 65 20 | 74 69 6d 65 64 20 6f 75 |at have |timed ou| |000011a0| 74 0d 09 0d 09 09 09 54 | 53 65 6d 61 70 68 6f 72 |t......T|Semaphor| |000011b0| 65 2a 09 09 66 4e 65 78 | 74 53 65 6d 61 70 68 6f |e*..fNex|tSemapho| |000011c0| 72 65 3b 09 09 09 09 2f | 2f 20 50 72 65 76 69 6f |re;..../|/ Previo| |000011d0| 75 73 20 73 65 6d 61 70 | 68 6f 72 65 20 69 6e 20 |us semap|hore in | |000011e0| 74 68 65 20 67 6c 6f 62 | 61 6c 20 6c 69 73 74 20 |the glob|al list | |000011f0| 6f 66 20 61 6c 6c 20 73 | 65 6d 61 70 68 6f 72 65 |of all s|emaphore| |00001200| 73 0d 09 09 09 54 53 65 | 6d 61 70 68 6f 72 65 2a |s....TSe|maphore*| |00001210| 09 09 66 50 72 65 76 69 | 6f 75 73 53 65 6d 61 70 |..fPrevi|ousSemap| |00001220| 68 6f 72 65 3b 09 09 09 | 2f 2f 20 4e 65 78 74 20 |hore;...|// Next | |00001230| 73 65 6d 61 70 68 6f 72 | 65 20 69 6e 20 74 68 65 |semaphor|e in the| |00001240| 20 67 6c 6f 62 61 6c 20 | 6c 69 73 74 20 6f 66 20 | global |list of | |00001250| 61 6c 6c 20 73 65 6d 61 | 70 68 6f 72 65 73 0d 09 |all sema|phores..| |00001260| 0d 09 09 09 54 68 72 65 | 61 64 49 44 09 09 66 4f |....Thre|adID..fO| |00001270| 77 6e 65 72 54 68 72 65 | 61 64 3b 09 09 09 09 2f |wnerThre|ad;..../| |00001280| 2f 20 54 68 65 20 74 68 | 72 65 61 64 20 74 68 61 |/ The th|read tha| |00001290| 74 20 63 75 72 72 65 6e | 74 6c 79 20 6f 77 6e 73 |t curren|tly owns| |000012a0| 20 74 68 69 73 20 73 65 | 6d 61 70 68 6f 72 65 0d | this se|maphore.| |000012b0| 09 09 09 54 54 68 72 65 | 61 64 49 44 51 75 65 75 |...TThre|adIDQueu| |000012c0| 65 09 66 42 6c 6f 63 6b | 65 64 54 68 72 65 61 64 |e.fBlock|edThread| |000012d0| 73 3b 09 09 09 2f 2f 20 | 51 75 65 75 65 20 6f 66 |s;...// |Queue of| |000012e0| 20 74 68 72 65 61 64 73 | 20 62 6c 6f 63 6b 65 64 | threads| blocked| |000012f0| 20 6f 6e 20 74 68 69 73 | 20 73 65 6d 61 70 68 6f | on this| semapho| |00001300| 72 65 0d 0d 09 09 09 6c | 6f 6e 67 09 09 09 66 52 |re.....l|ong...fR| |00001310| 65 73 6f 75 72 63 65 43 | 6f 75 6e 74 3b 09 09 09 |esourceC|ount;...| |00001320| 09 2f 2f 20 54 68 65 20 | 6e 75 6d 62 65 72 20 6f |.// The |number o| |00001330| 66 20 74 68 72 65 61 64 | 73 20 74 68 61 74 20 6d |f thread|s that m| |00001340| 61 79 20 6f 77 6e 20 74 | 68 69 73 20 73 65 6d 61 |ay own t|his sema| |00001350| 70 68 6f 72 65 20 28 30 | 20 6f 72 20 31 29 0d 09 |phore (0| or 1)..| |00001360| 09 09 6c 6f 6e 67 09 09 | 09 66 53 65 6d 61 70 68 |..long..|.fSemaph| |00001370| 6f 72 65 49 44 3b 09 09 | 09 09 2f 2f 20 54 68 65 |oreID;..|..// The| |00001380| 20 49 44 20 28 75 73 75 | 61 6c 6c 79 20 75 6e 69 | ID (usu|ally uni| |00001390| 71 75 65 29 20 66 6f 72 | 20 74 68 69 73 20 73 65 |que) for| this se| |000013a0| 6d 61 70 68 6f 72 65 0d | 09 09 09 6c 6f 6e 67 09 |maphore.|...long.| |000013b0| 09 09 66 4f 77 6e 65 72 | 43 6f 75 6e 74 3b 09 09 |..fOwner|Count;..| |000013c0| 09 09 2f 2f 20 54 68 65 | 20 6e 75 6d 62 65 72 20 |..// The| number | |000013d0| 6f 66 20 74 68 72 65 61 | 64 73 20 74 68 61 74 20 |of threa|ds that | |000013e0| 63 75 72 72 65 6e 74 6c | 79 20 6f 77 6e 20 74 68 |currentl|y own th| |000013f0| 65 20 73 65 6d 61 70 68 | 6f 72 65 20 28 3c 3d 20 |e semaph|ore (<= | |00001400| 66 52 65 73 6f 75 72 63 | 65 43 6f 75 6e 74 29 0d |fResourc|eCount).| |00001410| 09 09 09 42 6f 6f 6c 65 | 61 6e 09 09 09 66 44 69 |...Boole|an...fDi| |00001420| 73 70 6f 73 65 64 3b 09 | 09 09 09 09 2f 2f 20 54 |sposed;.|....// T| |00001430| 72 75 65 20 69 66 20 73 | 6f 6d 65 6f 6e 65 20 64 |rue if s|omeone d| |00001440| 69 73 70 6f 73 65 64 20 | 74 68 69 73 20 73 65 6d |isposed |this sem| |00001450| 61 70 68 6f 72 65 0d 09 | 09 09 6c 6f 6e 67 09 09 |aphore..|..long..| |00001460| 09 66 52 65 66 65 72 65 | 6e 63 65 43 6f 75 6e 74 |.fRefere|nceCount| |00001470| 3b 09 09 09 2f 2f 20 43 | 6f 75 6e 74 20 6f 66 20 |;...// C|ount of | |00001480| 62 6c 6f 63 6b 65 64 20 | 74 68 72 65 61 64 73 2c |blocked |threads,| |00001490| 20 74 6f 20 6b 65 65 70 | 20 73 65 6d 61 70 68 6f | to keep| semapho| |000014a0| 72 65 20 61 72 6f 75 6e | 64 20 61 66 74 65 72 20 |re aroun|d after | |000014b0| 22 64 65 6c 65 74 69 6f | 6e 22 0d 09 09 09 4f 53 |"deletio|n"....OS| |000014c0| 45 72 72 09 09 09 66 46 | 61 69 6c 4f 6e 57 61 6b |Err...fF|ailOnWak| |000014d0| 65 75 70 3b 09 09 09 09 | 2f 2f 20 49 66 20 73 65 |eup;....|// If se| |000014e0| 74 2c 20 61 6c 6c 20 74 | 68 72 65 61 64 73 20 66 |t, all t|hreads f| |000014f0| 61 69 6c 20 77 69 74 68 | 20 74 68 69 73 20 65 72 |ail with| this er| |00001500| 72 6f 72 20 77 68 65 6e | 20 74 68 65 79 20 77 61 |ror when| they wa| |00001510| 6b 65 20 75 70 0d 09 09 | 09 0d 09 09 09 75 6e 73 |ke up...|.....uns| |00001520| 69 67 6e 65 64 20 6c 6f | 6e 67 09 66 42 6c 6f 63 |igned lo|ng.fBloc| |00001530| 6b 53 74 61 72 74 54 69 | 63 6b 3b 09 09 09 2f 2f |kStartTi|ck;...//| |00001540| 20 54 69 63 6b 43 6f 75 | 6e 74 20 61 74 20 77 68 | TickCou|nt at wh| |00001550| 69 63 68 20 66 69 72 73 | 74 20 74 68 72 65 61 64 |ich firs|t thread| |00001560| 20 62 6c 6f 63 6b 65 64 | 20 6f 6e 20 74 68 69 73 | blocked| on this| |00001570| 20 73 65 6d 61 70 68 6f | 72 65 0d 09 09 09 75 6e | semapho|re....un| |00001580| 73 69 67 6e 65 64 20 6c | 6f 6e 67 09 66 54 69 6d |signed l|ong.fTim| |00001590| 65 6f 75 74 54 69 63 6b | 3b 09 09 09 09 2f 2f 20 |eoutTick|;....// | |000015a0| 54 68 65 20 74 69 63 6b | 20 61 74 20 77 68 69 63 |The tick| at whic| |000015b0| 68 20 74 68 65 20 73 65 | 6d 61 70 68 6f 72 65 20 |h the se|maphore | |000015c0| 77 69 6c 6c 20 74 69 6d | 65 20 6f 75 74 20 69 66 |will tim|e out if| |000015d0| 20 74 69 6d 65 72 0d 09 | 09 09 09 09 09 09 09 09 | timer..|........| |000015e0| 09 09 09 09 09 2f 2f 20 | 69 73 20 6e 6f 74 20 72 |.....// |is not r| |000015f0| 65 63 65 74 0d 09 09 09 | 6c 6f 6e 67 09 09 09 66 |ecet....|long...f| |00001600| 53 65 6d 61 70 68 6f 72 | 65 54 69 6d 65 6f 75 74 |Semaphor|eTimeout| |00001610| 56 61 6c 75 65 3b 09 09 | 2f 2f 20 48 6f 77 20 6c |Value;..|// How l| |00001620| 6f 6e 67 20 74 6f 20 77 | 61 69 74 20 61 66 74 65 |ong to w|ait afte| |00001630| 72 20 65 76 65 72 79 20 | 74 69 6d 65 72 20 72 65 |r every |timer re| |00001640| 73 65 74 0d 09 09 09 6c | 6f 6e 67 09 09 09 66 53 |set....l|ong...fS| |00001650| 65 6d 61 70 68 6f 72 65 | 4d 61 78 57 61 69 74 54 |emaphore|MaxWaitT| |00001660| 69 6d 65 3b 09 09 2f 2f | 20 54 68 65 20 6d 61 78 |ime;..//| The max| |00001670| 69 6d 75 6d 20 6e 75 6d | 62 65 72 20 6f 66 20 74 |imum num|ber of t| |00001680| 69 63 6b 73 20 74 6f 20 | 77 61 69 74 20 62 65 66 |icks to |wait bef| |00001690| 6f 72 65 20 69 67 6e 6f | 72 69 6e 67 20 74 69 6d |ore igno|ring tim| |000016a0| 65 72 0d 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |er......|........| |000016b0| 09 2f 2f 20 72 65 73 65 | 74 73 20 61 6e 64 20 6a |.// rese|ts and j| |000016c0| 75 73 74 20 74 69 6d 65 | 20 6f 75 74 0d 7d 3b 0d |ust time| out.};.| |000016d0| 0d 69 6e 6c 69 6e 65 09 | 09 76 6f 69 64 09 09 09 |.inline.|.void...| |000016e0| 54 53 65 6d 61 70 68 6f | 72 65 3a 3a 53 65 74 44 |TSemapho|re::SetD| |000016f0| 65 66 61 75 6c 74 54 69 | 6d 65 6f 75 74 28 6c 6f |efaultTi|meout(lo| |00001700| 6e 67 20 6e 65 77 44 65 | 66 61 75 6c 74 29 09 7b |ng newDe|fault).{| |00001710| 20 67 53 65 6d 61 70 68 | 6f 72 65 44 65 66 61 75 | gSemaph|oreDefau| |00001720| 6c 74 54 69 6d 65 6f 75 | 74 20 3d 20 6e 65 77 44 |ltTimeou|t = newD| |00001730| 65 66 61 75 6c 74 3b 20 | 7d 0d 69 6e 6c 69 6e 65 |efault; |}.inline| |00001740| 09 09 76 6f 69 64 09 09 | 09 54 53 65 6d 61 70 68 |..void..|.TSemaph| |00001750| 6f 72 65 3a 3a 53 65 74 | 44 65 66 61 75 6c 74 4d |ore::Set|DefaultM| |00001760| 61 78 57 61 69 74 28 6c | 6f 6e 67 20 6e 65 77 4d |axWait(l|ong newM| |00001770| 61 78 57 61 69 74 29 09 | 7b 20 67 53 65 6d 61 70 |axWait).|{ gSemap| |00001780| 68 6f 72 65 44 65 66 61 | 75 6c 74 4d 61 78 57 61 |horeDefa|ultMaxWa| |00001790| 69 74 20 3d 20 6e 65 77 | 4d 61 78 57 61 69 74 3b |it = new|MaxWait;| |000017a0| 20 7d 0d 69 6e 6c 69 6e | 65 09 09 75 6e 73 69 67 | }.inlin|e..unsig| |000017b0| 6e 65 64 20 6c 6f 6e 67 | 09 54 53 65 6d 61 70 68 |ned long|.TSemaph| |000017c0| 6f 72 65 3a 3a 54 69 6d | 65 6f 75 74 54 69 63 6b |ore::Tim|eoutTick| |000017d0| 28 29 09 09 09 09 09 09 | 7b 20 72 65 74 75 72 6e |()......|{ return| |000017e0| 20 66 54 69 6d 65 6f 75 | 74 54 69 63 6b 3b 20 7d | fTimeou|tTick; }| |000017f0| 0d 0d 69 6e 6c 69 6e 65 | 09 09 6c 6f 6e 67 09 09 |..inline|..long..| |00001800| 09 54 53 65 6d 61 70 68 | 6f 72 65 3a 3a 53 65 6d |.TSemaph|ore::Sem| |00001810| 61 70 68 6f 72 65 49 44 | 28 29 20 63 6f 6e 73 74 |aphoreID|() const| |00001820| 09 09 7b 20 72 65 74 75 | 72 6e 20 66 53 65 6d 61 |..{ retu|rn fSema| |00001830| 70 68 6f 72 65 49 44 3b | 20 09 7d 0d 0d 0d 23 65 |phoreID;| .}...#e| |00001840| 6e 64 69 66 0d 00 00 00 | 00 00 00 00 00 00 00 00 |ndif....|........| |00001850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001880| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F| |00001890| f5 f7 f9 fb ff fb f5 f5 | f5 f5 f5 f5 f5 f5 f5 f5 |........|........| |000018a0| f5 f5 f5 f5 f5 f5 f5 f5 | f5 f5 f5 f5 f5 f5 f5 f5 |........|........| |000018b0| 0c 53 65 6d 61 70 68 6f | 72 65 73 2e 68 55 02 00 |.Semapho|res.hU..| |000018c0| 00 00 54 45 58 54 4d 4d | 43 43 01 00 00 34 00 00 |..TEXTMM|CC...4..| |000018d0| 00 00 54 45 58 54 4d 4d | 43 43 01 00 00 34 00 00 |..TEXTMM|CC...4..| |000018e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000018f0| 00 00 aa 9b 2d fe 00 00 | 17 c5 00 00 01 9a f5 f5 |....-...|........| |00001900| f5 f5 f5 f5 f5 d8 d8 d8 | d8 f5 f5 f5 f5 f5 f5 f5 |........|........| |00001910| f5 f7 f9 fb ff fb f5 f5 | f5 f5 f5 f5 f5 f5 f5 f5 |........|........| |00001920| f5 f5 f5 f5 d8 d8 d8 d8 | d8 d8 f5 f5 f5 f5 f5 f5 |........|........| |00001930| f5 f7 f9 fb ff fb f5 f5 | f5 f5 f5 f5 f5 f5 f5 f5 |........|........| |00001940| f5 f5 f5 d8 d8 d8 f5 f5 | d8 d8 d8 f5 f5 f5 f5 f5 |........|........| |00001950| f5 f7 f9 fb ff fb f5 f5 | f5 f5 f5 f5 f5 f5 f5 f5 |........|........| |00001960| f5 f5 f5 d8 d8 d8 f5 f5 | d8 d8 d8 f5 f5 f5 f5 f5 |........|........| |00001970| f5 f7 f9 fb ff fb f5 f5 | f5 f5 f5 f5 f5 f5 f5 f5 |........|........| |00001980| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....| |00001990| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000019a0| 00 00 00 00 00 00 00 03 | 00 04 00 63 00 13 01 d6 |........|...c....| |000019b0| 02 72 00 63 00 13 01 d6 | 02 72 ac a9 86 3d 00 00 |.r.c....|.r...=..| |000019c0| 00 00 00 00 00 00 00 00 | 00 00 01 00 00 00 00 04 |........|........| |000019d0| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T| |000019e0| 00 00 00 46 00 dc bc 88 | 15 ac 00 00 00 1c 00 46 |...F....|.......F| |000019f0| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..| |00001a00| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........| |00001a10| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........| |00001a20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001a30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001a50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001a60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001a70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| +--------+-------------------------+-------------------------+--------+--------+